QCard.DLL is released to the public as FreeWare. It may be copied and redistributed provided all the enclosed files remain in tact. The file list is as follows: QCARD.TXT This file QCARD.DLL The main DLL file QCARD.HLP The documentation file DLL_TEST.EXE The VB demo program (requires VBRUN200.DLL) DLL_TEST.MAK The VB make file FORM1.FRM Main form for the VB demo ABOUT.FRM About form for the VB demo GLOBAL.BAS VB/QCard function delcarations QCARD_C.ZIP Support for C/C++ use QCARDPAS.ZIP Support for Pascal use This is the second release of QCARD.DLL. There are a few changes over release Ver 1 including the following: 1. The IsVisible data member for each card has been dropped as have the functions SetCardVisible() and IsCardVisible(). 2. BlockDragging routines now support an offset value which is adjustable. The default value is 16 (that is, the DLL will assume you are dealing your cards in columns, each card 16 pixels lower than the one above it, as in Windows Solitaire). If you wish to change the offset default, use the function SetOffSet(nValue), and all dragging will be carried out using nValue as an offset. QCARD does not support dragging in horizontal rows. 3. Cards can be toggled from Faceup to Facedown using the function SetCardStatus(nCard, bValue). All cards are initially Faceup. If you change a card's status to Facedown, it will be assumed to be Facedown (in Dealing, Drawing or Dragging) until such time as you change its status back to Faceup. 4. QCARD.DLL now has all new cardbacks and jokers, which were drawn by Daniel Di Bacco. Special thanks go out to him for his wonderful artwork. 5. QCARD's cards are as follows: 1 - 52 Deck One 53 - 104 Deck Two 105 - 109 Cardback Cards (good for doing piles!) 110 - 113 Jokers 6. In the previous version of the DLL, when doing block drags, it was required to put a temporary "blocked status" on the lowermost card being dragged so it would not turn up as a destination card within the EndBlockDrag function. QCARD now handles this temporary blocking for you, so you don't have to worry about it. 7. In this, as in version 1 of the DLL, only call InitializeDeck(hWnd) *once* during the running of your game. This will load the DLL and get it ready. To clear out old card positions and user values between hands within your game, you can make as many calls as you want to SetDefaultValues(). This will reset all QCARD's internal data.